function UpdateCameraState(mode) {
    mode = Misc.Clamp(mode, 0, 2);

    Client.Audio.PlaySound(0);

    Client.Camera.Mode = 2;
    Client.Camera.Sway = 0.1;
    Client.Camera.Offset = Vector(0.3, 1.8, 0);
    Client.Camera.FOV = 60;

    switch (mode) {
        case 0:
            Client.Camera.Distance = 2.5;
            break;
        case 1:
            Client.Camera.Distance = 4;
            break;
        case 2:
            Client.Camera.Distance = 6;
            break;
    }

    Client.Core.SetFocusEntityDistance(Client.Camera.Distance);

    //Client.Camera.Punch(Random.Range(1, 2));
}